home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Borland / Borland C++ V5.02 / APPEXPRT.PAK / TOLEVIEW.OWL < prev    next >
Text File  |  1997-05-06  |  6KB  |  215 lines

  1. <<[H]TOleView [[TOleView]]
  2. ##{hheader.snp}
  3. #include <owl/oleview.h>
  4.  
  5. ##<<TApplication QUERY_FILENAME_CPP [[Filename]]
  6. #include "[[Filename]].rh"            // Definition of all resources.
  7.  
  8.  
  9. //{{TOleView = [[TOleView]]}}
  10. class [[TOleView]] : public TOleView {
  11.   public:
  12.     [[TOleView]](TDocument& doc, TWindow* parent = 0);
  13.     virtual ~[[TOleView]]();
  14. ##--BEGIN-- @OPT_APPL_TOOLBAR
  15.  
  16.   private:
  17.     TControlBar* ToolBar;
  18. ##--END-- @OPT_APPL_TOOLBAR
  19.  
  20. //{{[[TOleView]]VIRTUAL_BEGIN}}
  21.   public:
  22.     virtual void Paint(TDC& dc, bool erase, TRect& rect);
  23. ##:DBVirtual(\\"[[TOleView]]", "Paint")
  24. //{{[[TOleView]]VIRTUAL_END}}
  25. ##--BEGIN-- @OPT_APPL_PRINTING || @OPT_APPL_TOOLBAR
  26. //{{[[TOleView]]RSP_TBL_BEGIN}}
  27.   protected:
  28. ##@OPT_APPL_PRINTING
  29.     void EvGetMinMaxInfo(MINMAXINFO far& minmaxinfo);
  30. ##@OPT_APPL_TOOLBAR
  31.     bool EvOcViewShowTools(TOcToolBarInfo far& tbi);
  32. //{{[[TOleView]]RSP_TBL_END}}
  33. DECLARE_RESPONSE_TABLE([[TOleView]]);
  34. ##--END-- @OPT_APPL_PRINTING || @OPT_APPL_TOOLBAR
  35. };    //{{[[TOleView]]}}
  36. ##{hfooter.snp}
  37. >>[H]TOleView [[TOleView]]
  38.  
  39.  
  40. <<[CPP]TOleView [[TOleView]]
  41. ##{cheader.snp}
  42. #include <owl/pch.h>
  43.  
  44. ##<<TApplication QUERY_FILE_H [[FileName]]
  45. #include "[[FileName]]"
  46. ##QUERY_FILE_H [[FileName]]
  47. #include "[[FileName]]"
  48.  
  49. #include <stdio.h>
  50.  
  51.  
  52. //{{[[TOleView]] Implementation}}
  53.  
  54. ##--BEGIN-- @OPT_APPL_PRINTING || @OPT_APPL_TOOLBAR
  55. ##@QUERY_APPL_COMMENT == VALUE_VERBOSE 4
  56. //
  57. // Build a response table for all messages/commands handled
  58. // by [[TOleView]] derived from TOleView.
  59. //
  60. DEFINE_RESPONSE_TABLE1([[TOleView]], TOleView)
  61. //{{[[TOleView]]RSP_TBL_BEGIN}}
  62. ##      @OPT_APPL_PRINTING
  63. ##          :DBResponse(\\"[[TOleView]]", "", "", "WM_GETMINMAXINFO", "")
  64.   EV_WM_GETMINMAXINFO,
  65. ##      @OPT_APPL_TOOLBAR
  66. ##          :DBResponse(\\"[[TOleView]]", "", "", "OC_VIEWSHOWTOOLS", "")
  67.   EV_OC_VIEWSHOWTOOLS,
  68. //{{[[TOleView]]RSP_TBL_END}}
  69. END_RESPONSE_TABLE;
  70.  
  71.  
  72. ##--END-- @OPT_APPL_PRINTING || @OPT_APPL_TOOLBAR
  73. ##--BEGIN-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  74. //--------------------------------------------------------
  75. // [[TOleView]]
  76. // ~~~~~~~~~~
  77. // Construction/Destruction handling.
  78. //
  79. ##--END-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  80. [[TOleView]]::[[TOleView]](TDocument& doc, TWindow* parent)
  81. :
  82.   TOleView(doc, parent)
  83. {
  84. ##QUERY_WIND_STYLE [[StyleAttributes]]
  85. ##StyleAttributes != "" 3
  86.   // Override the default window style for TOleView.
  87.   [[StyleAttributes]]
  88.  
  89. ##{wndbkgd.snp}
  90. ##@OPT_APPL_TOOLBAR 2
  91.   ToolBar = 0;
  92.  
  93.   // INSERT>> Your constructor code here.
  94.  
  95. }
  96.  
  97.  
  98. [[TOleView]]::~[[TOleView]]()
  99. {
  100.   // INSERT>> Your destructor code here.
  101.  
  102. }
  103.  
  104.  
  105. ##@QUERY_APPL_COMMENT == VALUE_VERBOSE 3
  106. //
  107. // Paint routine for Window, Printer, and PrintPreview for a TOleView client.
  108. //
  109. void [[TOleView]]::Paint(TDC& dc, bool erase, TRect& rect)
  110. {
  111. ##<<TApplication QUERY_CLASS_NAME [[TApplication]]
  112.   [[TApplication]]* theApp = TYPESAFE_DOWNCAST(GetApplication(), [[TApplication]]);
  113.   if (theApp) {
  114. ##--BEGIN-- @OPT_APPL_PRINTING == TRUE
  115. ##:@QUERY_APPL_COMMENT == VALUE_VERBOSE 2
  116.     // Only paint if we're printing and we have something to paint, otherwise do nothing.
  117.     //
  118.     if (theApp->Printing && theApp->Printer && !rect.IsEmpty()) {
  119. ##:@QUERY_APPL_COMMENT == VALUE_VERBOSE 3
  120.       // Use pageSize to get the size of the window to render into.  For a Window it's the client area,
  121.       // for a printer it's the printer DC dimensions and for print preview it's the layout window.
  122.       //
  123.       TSize   pageSize(rect.right - rect.left, rect.bottom - rect.top);
  124.  
  125.       TPrintDialog::TData& printerData = theApp->Printer->GetSetup();
  126.  
  127. ##:@QUERY_APPL_COMMENT == VALUE_VERBOSE 2
  128.       // Compute the number of pages to print.
  129.       //
  130.       printerData.MinPage = 1;
  131.       printerData.MaxPage = 1;
  132.  
  133.       TOcView*  ocView = GetOcView();
  134.  
  135. ##:@QUERY_APPL_COMMENT == VALUE_VERBOSE 2
  136.       // Default TOcPart painting
  137.       //
  138.       TRect clientRect = GetClientRect();
  139.       TRect logicalRect = clientRect +(TSize&)ocView->GetOrigin();
  140.         for (TOcPartCollectionIter i(GetOcDoc()->GetParts()); i; i++) {
  141.         TOcPart& p = *i.Current();
  142.         if (p.IsVisible(logicalRect)) {
  143.           TRect r = p.GetRect();
  144.           r -= ocView->GetOrigin();
  145.           p.Draw(dc, r, clientRect);        // Draw the embedded object.
  146.         }
  147.       }
  148.  
  149.       // INSERT>> Special printing code goes here.
  150.  
  151.     }
  152.     else {
  153.       TOleView::Paint(dc, erase, rect);
  154.  
  155.       // INSERT>> Normal painting code goes here.
  156.  
  157.     }
  158. ##--END-- @OPT_APPL_PRINTING == TRUE
  159. ##--BEGIN-- @QUERY_APPL_OLE == VALUE_SERVER
  160. ##@QUERY_PRJ_NAME [[Title]]
  161.     dc.TextOut(0, 30, "[[Title]] OLE Server");
  162. ##--END-- @QUERY_APPL_OLE == VALUE_SERVER
  163.   }
  164. }
  165. ##--BEGIN-- @OPT_APPL_PRINTING == TRUE
  166.  
  167.  
  168. void [[TOleView]]::EvGetMinMaxInfo(MINMAXINFO far& minmaxinfo)
  169. {
  170. ##<<TApplication QUERY_CLASS_NAME [[TApplication]]
  171.   [[TApplication]]* theApp = TYPESAFE_DOWNCAST(GetApplication(), [[TApplication]]);
  172.   if (theApp) {
  173.     if (theApp->Printing) {
  174.       minmaxinfo.ptMaxSize = TPoint(32000, 32000);
  175.       minmaxinfo.ptMaxTrackSize = TPoint(32000, 32000);
  176.       return;
  177.     }
  178.   }
  179.   TOleView::EvGetMinMaxInfo(minmaxinfo);
  180. }
  181. ##--END-- @OPT_APPL_PRINTING == TRUE
  182. ##--BEGIN-- @OPT_APPL_TOOLBAR
  183.  
  184.  
  185. bool [[TOleView]]::EvOcViewShowTools(TOcToolBarInfo far& tbi)
  186. {
  187.   // Construct & create a control bar for show, destroy our bar for hide
  188.   //
  189.   if (tbi.Show) {
  190.     if (!ToolBar) {
  191.       ToolBar = new TControlBar(this);
  192.  
  193. ##<<TApplication QUERY_CLASS_NAME [[TApplication]]
  194.       [[TApplication]]* theApp = TYPESAFE_DOWNCAST(GetApplication(), [[TApplication]]);
  195.       CHECK(theApp);
  196.  
  197.       theApp->CreateGadgets(ToolBar, true);
  198.     }
  199.  
  200.     ToolBar->Create();
  201.     tbi.HTopTB = (HWND)*ToolBar;
  202.   }
  203.   else {
  204.     if (ToolBar) {
  205.       ToolBar->Destroy();
  206.       delete ToolBar;
  207.       ToolBar = 0;
  208.     }
  209.   }
  210.  
  211.   return true;
  212. }
  213. ##--END-- @OPT_APPL_TOOLBAR
  214. >>[CPP]TOleView [[TOleView]]
  215.